home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / standards / CCITT / 1992 / X / x290_a1.asc < prev    next >
Encoding:
Text File  |  1993-07-15  |  21.8 KB  |  693 lines

  1.  
  2.  
  3.  
  4.                                - 1 -
  5.                             AP IX-43-E
  6.                                 
  7.  
  8.                  ANNEX A                                    
  9.  
  10.                 (to Recommendation X.290, Part 1)
  11.  
  12.                             Options 
  13.  
  14. A.1    Options are those items in a Recommendation* for which the implementor may 
  15. make a choice regarding the item to suit the implementation.
  16.  
  17. A.2    Such a choice is not truly free. There are requirements which specify the 
  18. conditions under which the option applies and the limitations of the choice.
  19.  
  20.        Conversely, there may  be  mandatory  or  conditional  requirements,  or
  21. prohibitions, in a Recommendation* which are dependent on the choice made or on a 
  22. combination of the choices already made.
  23.  
  24. A.3    The following are examples of options and associated requirements; the list 
  25. is not exhaustive:
  26.  
  27.        a)   "Boolean" options: the option is "do or do not do"; the requirement is 
  28.        "if do, then do as specified."
  29.  
  30.        b)   Mutually exclusive options: the requirement is to do just 1  of  n
  31.          actions, the option is which of them to do.
  32.  
  33.        c)   Selectable options: the option is to do any m out of n actions, with 
  34.        a requirement to do at least one action (1<m<n and n>2).
  35.  
  36. A.4    Options may apply to anything within the scope of  a  Recommendation*
  37. (e.g. static or dynamic aspects, use or provision of a service, actions to be 
  38. taken, presence/absence or form of parameters, etc.).
  39.  
  40. A.5    Another type of distinction is between service-user options and service- 
  41. provider options.
  42.  
  43. A.6    In a wider context, the choice will be determined by conditions which 
  44. lie outside the scope of the Recommendation* (e.g. other Recommendations* which 
  45. apply to the implementation, the protocols used in the (N+1) and (N-1) layers, 
  46. the intended application, conditions of procurement, target  price  for  the
  47. implementation, etc.). However, these have no bearing on conformance to  the
  48. Recommendation* in which the option appears.
  49.  
  50.  
  51.  
  52.  
  53.                                   ANNEX B 
  54.                      (to Recommendation X.290, Part 2)
  55.                                       
  56.               Guidance for protocol Recommendations* writers  
  57.                      to facilitate conformance testing
  58.  
  59.  
  60. B.1    Introduction
  61.  
  62.        This annex gives guidance, primarily for the specifiers of  new  protocol
  63.  
  64.  
  65.  
  66. (3184)  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.                                - 2 -
  76.                             AP IX-43-E
  77.                                 
  78.  
  79. Recommendations*, to facilitate conformance testing by  ensuring  a  very  clear
  80. understanding of the conformance requirements.
  81.  
  82. B.2    Guidance on scope and field of application
  83.  
  84. B.2.1  Precision in the scope and field of application sections sets the tone for 
  85. precision in the rest of the Recommendation*. The  requirements  stated  in  the
  86. Recommendation* should be consistent with the scope and field of application and 
  87. vice versa.
  88.  
  89. B.2.2  The scope should distinguish clearly between the following three types of 
  90. information included in the protocol Recommendation*:
  91.  
  92.        a)   the definition of the procedures for communication to be followed at 
  93.        the time of communication;
  94.  
  95.        b)   requirements to be met by suppliers of implementations  of  the
  96.          procedures;
  97.  
  98.        c)   guidance on how to implement the procedures.
  99.  
  100.        Guidance on how to implement the procedures does  not  constitute
  101. additional requirements nor does it have any bearing on conformance.  If
  102. such guidance is included, the scope should make these points and indicate 
  103. how  guidance  can  be  distinguished  from  the  requirements  of   the
  104. Recommendation*. This distinction is much easier to make if guidance  is
  105. separated from requirements. The recommended method of such separation in 
  106. the ISO Directives is to place guidance in notes and annexes.
  107.  
  108. B.2.3  It should be clear to whom the Recommendation* applies.
  109.  
  110. B.2.4  It should be clear at what time the Recommendation* applies.
  111.  
  112.        Protocol procedures apply between pairs of communicating parties at the time 
  113. of communication.  If there might be any ambiguity over which communicating parties 
  114. are involved, this should be resolved in the scope.
  115.  
  116.        It is best if protocol Recommendations* are written in such a way that the 
  117. requirements are to  be  met  by  a  single  communicating  party  (the  "first"
  118. communicating party for this purpose) for the  benefit  of  one  or  more  other
  119. communicating parties (the "second" communicating parties).  Then when two (or more) 
  120. communicating parties are all expected to communicate in  conformance  with  the
  121. Recommendation*, the Recommendation* is first applied to one party, treating it as 
  122. the "first" one, and then to the other(s) in turn.  This  ensures  that  if  the
  123. procedures are violated, it is clear which party is at fault.
  124.  
  125. B.2.5  If any guidance  is  given  about  factors  which  are  not  standardized
  126. definitively, the scope should make it clear that any such guidance can be ignored 
  127. without affecting conformance.
  128.  
  129. B.2.6  The aspects which are excluded from the scope should be identified clearly.
  130.  
  131.        Not all factors relevant to the procedures or to products which implement 
  132. them need to be standardized; indeed it is often desirable to leave some implementor 
  133. freedom. For instance, it may be desirable to omit in a protocol Recommendation* any 
  134.  
  135.  
  136.  
  137. (3184)  
  138.  
  139.  
  140.  
  141.  
  142.                                - 3 -
  143.                             AP IX-43-E
  144.                                 
  145.  
  146. requirements for explicit values of timeouts, but to give guidance instead.
  147.  
  148.        The scope should make it clear which aspects are standardized definitively, 
  149. which are covered by guidance but not by any requirements, and which are excluded 
  150. from consideration by the Recommendation*. Any aspects which one might think would 
  151. be covered, on the basis that they are closely  related  to  aspects  which  are
  152. standardized, need explicit mention.
  153.  
  154. B.2.7  All options should, if possible, be identified clearly in the scope.
  155.  
  156.        Options are one of the most troublesome, but unfortunately necessary parts 
  157. of protocol Recommendations*. They fall somewhere between what is standardized and 
  158. what is not.  They will be covered in greater depth below. At this point, what is 
  159. important is that options are not buried deep inside the Recommendation* but are 
  160. declared clearly at the beginning. If the number and detailed nature of the options 
  161. makes this impractical, one should seriously ask whether such complexity is really 
  162. necessary.  Can detailed options be grouped together in some way (e.g.  classes) to 
  163. simplify the Recommendation*?
  164.  
  165. B.2.8  The scope and field of application should be reviewed after considering the 
  166. rest of the Recommendation*.
  167.  
  168.        It is often not possible to satisfy some of the above suggestions until the 
  169. rest of the Recommendation* has been  considered.  Therefore,  it  is  generally
  170. necessary to return to the scope, to check that it really does  agree  with  the
  171. contents of the Recommendation*. It is common to find that sections quite outside 
  172. the scope have found their way in.
  173.  
  174. B.3    Guidance on references
  175.  
  176. B.3.1  OSI protocol Recommendations* should refer to the OSI reference model, the 
  177. relevant service Recommendations* and to any relevant Recommendations* for protocol 
  178. conventions, guidelines, or formal description techniques.
  179.  
  180. B.3.2  It should be made clear whether conformance to the protocol Recommendation* 
  181. requires conformance to any part of any other Recommendation*.
  182.  
  183. B.3.3  It should be made clear whether each reference is to a particular version of 
  184. the referenced Recommendation* or to each successive version.
  185.  
  186.        Normally, the latest version is required, but this can cause problems  as
  187. changes  to  the  other  Recommendation*  might  affect  conformance   to   this
  188. Recommendation*.
  189.  
  190. B.4    Guidance on requirements and options
  191.  
  192. B.4.1  The status of every requirement should be unambiguous.
  193.  
  194.        Since optional and conditional requirements are so  common,  there  is  a
  195. tendency to interpret everything which can be interpreted as optional  as  being
  196. optional.
  197.  
  198. B.4.2  It should be possible for an instance of communication to conform with all 
  199. the mandatory dynamic conformance requirements.
  200.  
  201.  
  202.  
  203.  
  204. (3184)  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.                                - 4 -
  214.                             AP IX-43-E
  215.                                 
  216.  
  217. B.4.3  The conditions under which conditional requirements apply should be spelt 
  218. out clearly.
  219.  
  220. B.4.4  It should not be impossible for the implementor or supplier to know  what
  221. these conditions are.
  222.  
  223. B.4.5  There should be no possibility of  confusion  between  what  is  optional
  224. dynamically and what is optional statically.
  225.  
  226.        There may be mandatory static conformance requirements for the support of 
  227. features whose use at the time of communication is optional.  Conversely, a message 
  228. whose use is mandatory in a given context at the time of communication may be part 
  229. of a protocol mechanism whose support is optional statically.
  230.  
  231. B.4.6  If the Recommendation* contains a "shopping list" of options, and there are 
  232. restrictions on the allowed combinations of such options, then the  restrictions
  233. should be specified clearly.  These should include identification of any  mutual
  234. exclusions and any minimum and maximum limits to the allowed range of options.
  235.  
  236. B.4.7  If the Recommendation* does not give any rules for selection of options, it 
  237. should be made clear in the scope that only the total range and individual options 
  238. are standardized, but not the selection.
  239.  
  240. B.4.8  Legitimizing options should be avoided. These  are  options  which  allow
  241. alternative and incompatible versions of the same thing to claim conformance to the 
  242. same Recommendation*. While they do  not  of  themselves  prevent  an  objective
  243. understanding of conformance, they may frustrate the aims of OSI.
  244.  
  245. B.4.9  There should be no options which give the implementor permission to ignore 
  246. important  requirements  of  the  Recommendation*.  Such  options  devalue   the
  247. Recommendation* and the meaning of conformance to it.
  248.  
  249. B.4.10 If  there  are  prohibitions  in  the  Recommendation*,  they  should  be
  250. sufficiently precise to be meaningful.
  251.  
  252.        Many Recommendations* have sections which say in effect "do all of this and 
  253. nothing else". Such prohibitions may be meaningless, because every protocol conveys 
  254. some information which is not standardized, the so-called "user data", and every 
  255. standardized product has attributes which are not standardized, e.g. weight. It may 
  256. be difficult to draw a clear objective line between things  the  Recommendation*
  257. cannot forbid and those which the writers of the Recommendation* want to forbid, 
  258. unless the prohibitions are stated explicitly.
  259.  
  260. B.5    Guidance on Protocol Data Units
  261.  
  262. B.5.1  The permitted set of PDU types and parameter encodings should  be  stated
  263. clearly.
  264.  
  265. B.5.2  The permitted range of values should be stated clearly for each parameter.
  266.  
  267. B.5.3  All values, which fall outside the stated permitted range, should be stated 
  268. explicitly to be invalid.
  269.  
  270.        If not, some people will argue that such values are undefined but allowed, 
  271. whilst others will argue that they are invalid.
  272.  
  273.  
  274.  
  275. (3184)  
  276.  
  277.  
  278.  
  279.  
  280.                                - 5 -
  281.                             AP IX-43-E
  282.                                 
  283.  
  284.  
  285. B.5.4  It should be clear whether or not undefined PDU types are allowed.
  286.  
  287.        It is safer if all undefined PDU types are declared to be invalid.
  288.  
  289. B.5.5  Critical undefined values should be mentioned explicitly in the scope  as
  290. being undefined.
  291.  
  292. B.5.6  There should  be  a  defined  procedure  to  be  followed  by  the  first
  293. communicating party in each case of it receiving an invalid or undefined PDU type or 
  294. parameter.
  295.  
  296. B.5.7  It should be possible to detect whether the defined  procedure  has  been
  297. followed in such cases.  If it is not, then it should be because it does not matter.
  298.  
  299.        Sometimes the procedure to be followed upon receipt of an invalid PDU  is
  300. intentionally the same as  when  some  valid  PDUs  are  received  in  the  same
  301. circumstances. For example, the procedure might be to do nothing until one specific 
  302. type of PDU is received, everything else being ignored. In such cases, it probably 
  303. does not matter that the error has apparently gone undetected. In some other cases, 
  304. the intention may be that error cases should be given special treatment, but that 
  305. the procedure has been poorly chosen with the result that it cannot be distinguished 
  306. from the action in non-error cases.
  307.  
  308. B.5.8  If, in the encoding of PDUs, there are any fields declared to be reserved, 
  309. then there should be a clear statement of what values, if any,  are  allowed  or
  310. disallowed in these fields.
  311.  
  312. B.5.9  If interrelated parameters can be carried on separate PDUs, then the set of 
  313. permitted relationships between the values of these parameters should be precisely 
  314. and clearly defined.
  315.  
  316. B.5.10 If the parameter encoding allows for parameters to be specified in any order, and 
  317. the PDU format places restrictions on the permitted orders, then these  restrictions
  318. should be clearly stated. It should be recognized that if many different orders  are
  319. permitted, then a large representative sample of different orders ought to be tested. 
  320. The added complexity of testing conformance should, therefore, be adequately compensated 
  321. by some advantage in allowing this freedom.
  322.  
  323. B.5.11 The order in which the bits, octets, etc. should be carried in the underlying 
  324. protocol should be stated clearly.              
  325.  
  326.        For example, should a two octet integer travel most or least significant octet 
  327. first? It is surprising how often such simple causes of ambiguity are overlooked.
  328.  
  329. B.5.12 The relationship between SDUs and PDUs should be defined clearly.
  330.  
  331. B.6    Guidance on states
  332.  
  333. B.6.1  Protocol procedures are often defined using a finite state approach,  whether
  334. formalized or not. The specification of these states is often incomplete.
  335.  
  336. B.6.2  Each state should be defined clearly.
  337.  
  338. B.6.3  If there are events which can only occur in a subset of the possible states, then 
  339.  
  340.  
  341.  
  342. (3184)  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.                                - 6 -
  352.                             AP IX-43-E
  353.                                 
  354.  
  355. possible occurrence of an event should be distinguished from valid occurrence.
  356.  
  357. B.6.4  The required actions and state transitions should be defined for each possible 
  358. state/event pair. In particular, they should be defined  for  possible  but  invalid
  359. state/event pairs.  
  360. B.7    Guidance on Formal Description Techniques
  361.  
  362. B.7.1  The following requirements apply only to those Recommendations* which include a 
  363. formal description. Precise, unambiguous Recommendations* can be written without the aid 
  364. of a formal description technique (FDT), but in  complex  Recommendations*  such  as
  365. protocols formal descriptions are highly recommended.  It should, however, be realized 
  366. that they can create problems themselves in relation to conformance.
  367.  
  368. B.7.2  It should be clear whether the formal description forms an essential part of the 
  369. Recommendation* or is provided only for guidance.
  370.  
  371.        It is very important to have a clear understanding of the status of the formal 
  372. description. Ideally there should be no discrepancies between the text and the formal 
  373. description, but because this is very difficult to achieve in practice it is important 
  374. that the reader knows which takes precedence. If the formal description is provided only 
  375. for guidance, it cannot define conformance requirements.
  376.  
  377. B.7.3  The FDT should be well-defined, stable and properly referenced.
  378.  
  379. B.7.4  If the formal description defines requirements, but not all the requirements of 
  380. the Recommendation*, then it  should  be  stated  clearly  that  the  text  includes
  381. requirements which are not covered by the formal description  and  these  additional
  382. requirements should be identified clearly.
  383.  
  384. B.7.5  If the formal description defines requirements, and it also defines an allowed 
  385. way of implementing some aspects of the protocol, but there is intended to be freedom 
  386. for the implementor to implement those aspects in some other way, then this constitutes 
  387. over-definition. This is all too common in formal descriptions, and creates difficulties 
  388. in relation to conformance. If the formal description is an essential  part  of  the
  389. Recommendation*, then text should be provided to qualify it, indicating where such over- 
  390. definition exists and what the real requirements are.
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413. (3184)  
  414.  
  415.  
  416.  
  417.  
  418.                                - 7 -
  419.                             AP IX-43-E
  420.                                 
  421.  
  422.        The problem usually arises because the formal description describes the internal 
  423. behaviour of an idealized implementation, rather than the observable external behaviour 
  424. that is required. It is only the observable external behaviour which can be tested, and 
  425. therefore it is only this which should constitute requirements for conformance purposes. 
  426. It may well be that a different FDT should be used for defining the requirements from 
  427. that used to provide guidance to implementors.
  428.  
  429. B.8    Miscellaneous guidance
  430.  
  431. B.8.1  Information which may appear obvious should nevertheless be stated.
  432.  
  433.        If something is omitted because it is "obvious", some readers will assume it is 
  434. required because it is "obvious", but others will assume that it is omitted to provide 
  435. freedom for implementors. For example, does the existence of a checksum imply that it 
  436. has to be checked?
  437.  
  438.  
  439.  
  440.  
  441.                                       ANNEX C
  442.  
  443.                         (to Recommendation X.290, Part 2)  
  444.                     Incomplete static conformance requirements 
  445.  
  446.  
  447. C.1    As a matter of historical record, the development of protocol Recommendations* 
  448. has been undertaken in parallel with the determination of the meaning of conformance, 
  449. and in particular with the gaining of understanding of the distinction between static 
  450. and dynamic conformance.
  451.  
  452. C.2    Therefore, some early protocol Recommendations*  will  not  give  a  complete
  453. specification of the requirements for static conformance. Typical of the incompleteness 
  454. is the requirement to support a particular function without saying whether this applies 
  455. to sending, receiving or both; or the absence of precise conditions of detection  of
  456. protocol errors in received incoming messages.
  457.  
  458. C.3    Accordingly, there may be different  interpretations  of  what  a  conforming
  459. implementation is.
  460.  
  461. C.4     In  future  Recommendations*  or  at  the  time  of  revision  of   existing
  462. Recommendations* it will be necessary to provide a thorough specification of  static
  463. conformance requirements. This would include the specification of conditions applicable 
  464. to the implementation or non-implementation of everything  that  is  neither  always
  465. mandatory nor always optional.
  466.  
  467. C.5    In the short term, it is essential that, at very least,  current  drafts  are
  468. modified to clarify the present situation: it  is  not  considered  acceptable  that
  469. Recommendations* should be issued in a form in which implementation requirements suffer 
  470. from extensive ambiguity. Consideration also needs to be given to what should be done 
  471. where the protocols have already reached the status of ISO International Standard or 
  472. CCITT Recommendation.
  473.  
  474. C.6    No other short-term solution is seen other than to accept and state clearly that 
  475. all capabilities not covered explicitly in the static conformance  requirements  are
  476. optional; and to minimize the potential problems that this may cause by specifying that:
  477.  
  478.  
  479.  
  480. (3184)  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.                                - 8 -
  490.                             AP IX-43-E
  491.                                 
  492.  
  493.  
  494.        a)   only implementations which
  495.  
  496.             1)     implement   everything   that   is   explicitly   specified    as
  497.        mandatory; and
  498.  
  499.                         2)   do not omit anything unless it is explicitly stated to be optional, 
  500.             even though there may be a general clause of the sort "if not specified, 
  501.             then optional";
  502.  
  503.        are to be designated as "conforming" without qualification;
  504.  
  505.        b)   any implementation which 
  506.  
  507.                         1)   implements everything that is explicitly specified as mandatory; and
  508.  
  509.                         2)   omits things which are not explicitly stated to be optional, perhaps 
  510.             because of a general clause of the sort "if not specified then optional";
  511.  
  512.        shall be described as conforming to a subset.
  513.  
  514. C.7    Implementations which omit anything that is mandatory do not conform at all.
  515. Note - A system conforming without qualification will not necessarily interwork with 
  516. another system, nor will it necessarily work better than a system  conforming  to  a
  517. subset. The "perfect" system may refuse from other systems PDUs which it would consider 
  518. as incorrect or incomplete. Thus, it may reject or abort connections.
  519.  
  520.        Therefore, special consideration should be given to conformance with respect to 
  521. the detection of protocol errors, especially when this detection can be explicitly or 
  522. implicitly optional.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551. (3184)  
  552.  
  553.  
  554.  
  555.  
  556.                                - 9 -
  557.                             AP IX-43-E
  558.                                 
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. (3184)
  619.  
  620. CCITT\AP-IX\DOC\043E5.TXS
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.                                - 10 -
  628.                             AP IX-43-E
  629.                                 
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688. (3184)
  689.  
  690. CCITT\AP-IX\DOC\043E5.TXS
  691.  
  692.  
  693.